package com.atguigu.gmall.index.config;

import java.lang.annotation.*;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author: 86182
 * @Date: 2021/8/12
 * @Time: 17:09
 * @Version:
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface GmallCache {
    /**
     * 缓存的前缀
     * @return
     */
    String prefix() default "";

    /**
     * 设置缓存的有效时间,单位: min
     * 默认过期时间30min
     * @return
     */
    int timeout() default 30;

    /**
     * 为了防止缓存雪崩,给缓存过期时间添加随机值
     * 这里可以指定随机值范围,默认10min
     * @return
     */
    int random() default 10;

    /**
     * 为了防止击穿,添加分布式锁的key
     * 这里可以指定分布式锁的前缀 + 方法参数
     * @return
     */
    String lock() default "lock";
}
